# pythonProject5/db/session.py

"""
数据库连接配置
包含：引擎、会话工厂、Base 基类
"""
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker, declarative_base
from core.config import settings

# 创建数据库引擎
engine = create_engine(
    settings.DATABASE_URL,
    pool_size=settings.DATABASE_POOL_SIZE,
    max_overflow=settings.DATABASE_MAX_OVERFLOW,
    pool_timeout=settings.DATABASE_POOL_TIMEOUT,
    pool_recycle=settings.DATABASE_POOL_RECYCLING,
    echo=settings.DATABASE_ECHO,  # 开发环境中可以开启 echo 来打印 SQL 语句
)

# 创建会话工厂
SessionLocal = sessionmaker(
    autocommit=False,
    autoflush=False,
    bind=engine
)

# 创建基类（用于模型继承）
Base = declarative_base()

# 可选：打印数据库连接信息（调试用）
if __name__ == "__main__":
    print(f"数据库 URL: {settings.DATABASE_URL}")
    print(f"引擎已创建，连接池大小: {settings.DATABASE_POOL_SIZE}")
